﻿using System;

namespace ChapterX.Common
{
    using System;

    public abstract class ForeignException : ApplicationException
    {
        public ForeignException() : base() { }
        public ForeignException(String message) : base(message) { }
    }

    /* 通用 */
    public class GenericException : ForeignException
    {
        public GenericException() : base() { }
        public GenericException(String message) : base(message) { }
    }

    /* 内部异常 */
    public class UnexpectedException : ForeignException
    {
        public UnexpectedException() : base("系统内部异常，请与管理员联系。") { }
        public UnexpectedException(String message) : base(message) { }
    }

    /* 权限不足 */
    public class UnauthorizedException : ForeignException
    {
        public UnauthorizedException() : base("没有足够的权限来完成操作，请与管理员联系。") { }
        public UnauthorizedException(String message) : base(message) { }
    }

    /* 记录不存在 */
    public class RecordNotExistedException : ForeignException
    {
        public RecordNotExistedException() : base("指定的记录不存在。") { }
        public RecordNotExistedException(String message) : base(message) { }
    }

    /* 记录已存在 */
    public class RecordAlreadyExistedException : ForeignException
    {
        public RecordAlreadyExistedException() : base("指定的记录已存在。") { }
        public RecordAlreadyExistedException(String message) : base(message) { }
    }

    /* 输入无效 */
    public class InvalidInputException : ForeignException
    {
        public InvalidInputException() : base() { }
        public InvalidInputException(String message) : base(message) { }
    }

    /* 解析错误 */
    public class ParseException : ForeignException
    {
        public ParseException() : base() { }
        public ParseException(String message) : base(message) { }
    }

    /* 验证错误 */
    public class VerifyException : ForeignException
    {
        public VerifyException() : base() { }
        public VerifyException(String message) : base(message) { }
    }

    /* ISBN相关 */
    public class IsbnException : ForeignException
    {
        public IsbnException() : base() { }
        public IsbnException(String message) : base(message) { }
    }
}
